//
//  TextLib.h
//  TextLib
//
//  Created by LHJ on 14/12/20.
//  Copyright (c) 2014年 LHJ. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "RoomItem.h"

// ******** 定时任务 ********
#define Time_Enabled        @"enabled"      // 表示该定时任务是否执行。（NSNuber boolValue）
#define Time_Silent         @"silent"       // 暂时未用到，默认设置为0。（NSNumber boolValue）
#define Time_Minutes        @"minutes"      // 分钟。（NSNumber intValue）
#define Time_Alert          @"alert"        // 暂时未用到，默认设置为""。（NSString）
#define Time_Audiosrc       @"audiosrc"     // 音源：0-无，3-AUX，2-收音，1-音乐。（NSNumber intValue）
#define Time_Volume         @"volume"       // 音量：0.0~1.0f。（NSNumber floatValue）
#define Time_Vibrate        @"vibrate"      // 暂时为拥戴，默认设置为0。（NSNumber boolValue）
#define Time_Type           @"type"         // 编辑类别，用于增加，修改，删除定时任务时发送到设备的参数。取值 TimeEdit_***。（NSString）
#define Time_IsShutDown     @"isShutDown"   // 自动关机 / 自动开机，为YES时则自动关机。（NSNumber boolValue）
#define Time_Label          @"label"        // 暂时没用到，默认设置为""。（NSString）
#define Time_Hour           @"hour"         // 小时。（NSNumber intValue）
#define Time_DaysOfWeek     @"daysOfWeek"   // 其中daysOfWeek，低7位中每一位代表星期几，低位开始表示星期一~天，比如"daysOfWeek":100表示星期三，六和日。（NSNumber intValue）

#define TimeEdit_Modify       @"modify"     // 编辑目前存在的定时任务
#define TimeEdit_Add          @"add"        // 增加定时任务
#define TimeEdit_Delete       @"delete"     // 删除定时任务

// ******** 睡眠时间 ********
#define Time_Sleepindex     @"sleepindex"   // 取值是0 ~6, 对面界面上的单选按钮，0表示取消睡眠设置，1-15分钟，2-30分钟，3-45分钟，4-1小时，5-2小时，6-3小时。（NSNumber intValue）
#define Time_Currenttime    @"currenttime"  // 当前时间，毫秒单位。（NSNumber longLongValue）
#define Time_Begintime      @"begintime"    // 在设置时的时间，毫秒单位。（NSNumber longLongValue）
#define Time_Endtime        @"endtime"      // 睡眠要执行的时间，毫秒单位。（NSNumber longLongValue）

@interface ConnectDev : NSObject

/** 开始搜索网络中的设备 */
- (void) searchDevices;

/** 获取所有设备，数组对象为RoomItem */
- (NSArray*) getAllDevices;

/** 关掉所有设备，对应 [RoomItem powerOff] */
- (void) shutDownAllDev;

/** 播放所有设备，对应 [RoomItem playDev:YES]*/
- (void) openAllDev;

/** 暂停所有设备，对应 [RoomItem playDev:NO] */
- (void) pauseAllDev;

/** 关闭所有链接 */
- (void) closeAllConnect;

/** 启动设备服务端程序，v_tag - 设备对象在数组的索引值，对应 [RoomItem startDevice]  */
- (void) openDev:(int)v_tag;

/** 播放上一首，v_tag - 设备对象在数组的索引值，对应 [RoomItem playControl:2]  */
- (void) preMusic:(int)v_tag;

/** 播放下一首，v_tag - 设备对象在数组的索引值，对应 [RoomItem playControl:3]  */
- (void) nextMusic:(int)v_tag;

/** 播放/暂停状态切换，v_tag - 设备对象在数组的索引值，对应 [RoomItem playMusic:YES/NO]  */
- (void) playOrPause:(int)v_tag;

/** 获取所有音源，MusicLoc_*** */
- (NSArray*) getAllMusicLoc;

/** 设备关机，v_tag - 设备对象在数组的索引值 ，对应 [RoomItem powerOff] */
- (void) shutDownDevWithTag:(int)v_tag;

/** 设置音源，取值 MusicLoc_***, v_tag - 设备对象在数组的索引值，对应[RoomItem setMusicLoc:v_strLoc] */
- (void) setMusicLoc:(NSString*)v_strLoc _tag:(int)v_tag;

/** 设置音源，取值 MusicLoc_***, v_tag - 设备对象在数组的索引值，对应[RoomItem setMusicLoc:v_strLoc] */
- (void) setMusicLoc:(NSString*)v_strLoc _dev:(RoomItem*)v_item;

/** 设置设备时间，v_tag - 设备对象在数组的索引值，对应[RoomItem setDevTime:v_timeMillis]; */
- (void) setDevTime:(long)v_timeMillis _tag:(int)v_tag;

/** 返回睡眠时间 */
- (NSArray*) getSleepTimes;

/** 设置设备睡眠时间，
 * v_timeTag对应时间数组的索引0~6（getSleepTimes函数返回)，1-15分钟，2-30分钟，3-45分钟，4-1小时，5-2小时，6-3小时，1-15分钟，2-30分钟，3-45分钟，4-1小时，5-2小时，6-3小时
 * v_tag - 设备对象在数组的索引值
 * 对应 [RoomItem setSleepTime:v_timeTag]; */
- (void) setSleepTime:(int)v_timeTag _tag:(int)v_tag;

/** 将目前播放的音乐设置为收藏，v_tag - 设备对象在数组的索引值，对应 [RoomItem musicFav] */
- (void) musicFav:(int)v_tag;

/** 发送新增/修改/删除的定时任务到设备上 ， v_tag - 设备对象在数组的索引值 */
- (void) setDSTaskToDev:(NSArray*)v_ary _tag:(int)v_tag;

/** 发送新增/修改/删除的定时任务到设备上，v_item - 设备对象 */
- (void) setDSTaskToDev:(NSArray*)v_ary _dev:(RoomItem*)v_item;

/** 设置播放模式
 * v_tag - 设备对象在数组的索引值
 * v_playMode - 播放模式，取值Mode_***
 * 对应 [RoomItem setPlayMode:v_playMode] */
- (void) setPlayMode:(int)v_tag _playMode:(int)v_playMode;

/** 设置播放模式
 * v_item - 设备对象
 * v_playMode - 播放模式，取值Mode_***
 * 对应 [RoomItem setPlayMode:v_playMode] */
- (void) setPlayModeWithDev:(RoomItem*)v_item _playMode:(int)v_playMode;

/** 设置EQ模式
 * v_tag - 设备对象在数组的索引值
 * v_eq - 播放模式，取值EQ_***
 * [RoomItem setEQ:v_eq] */
- (void) setEQ:(int)v_tag _eq:(int)v_eq;

/** 设置EQ模式
 * v_item - 设备对象
 * v_eq - 播放模式，取值EQ_***
 * [RoomItem setEQ:v_eq] */
- (void) setEQWithDev:(RoomItem*)v_item _eq:(int)v_eq;

@end

